#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>

// 信号处理函数：处理SIGALRM信号
void my_alarm_handler(int signo) {
    if (signo == SIGALRM) {
        puts("\nTime out!");
        // 重新设置闹钟，确保每隔5秒再次触发
        alarm(5);
    }
}

int main() {
    // 注册信号处理函数
    if (signal(SIGALRM, my_alarm_handler) == SIG_ERR) {
        perror("signal");
        exit(EXIT_FAILURE);
    }

    // 设置第一次闹钟
    alarm(5);

    // 主循环：模拟程序运行
    for (;;) {
        printf(".");
        fflush(stdout); // 立即输出
        sleep(1);       // 模拟工作
    }
}
